function fn(a){
    console.log(a);  //  function a(){}
    var a = 123
    console.log(a);  // 123
    function a(){}
    console.log(a);  // 123
    var b = function(){}
    console.log(b);  // function b(){} 
    function d(){}
    var d = a
    console.log(d);   
    }

// AO:{
//     a: undefined  ->  1  ->  function a(){}  -> 123
//     b: undefined  -> function (){} 
//     d: undefined  -> function d(){}  ->   123
// }
fn(1);